import Vue from "vue";
import Vuex from "vuex";

// 导入模块
import moduleCollect from './collects.js'

Vue.use(Vuex);

// 创建store实例
// Vuex.Store 构造器选项
const store = new Vuex.Store({
	state: {
		// 是否登录标识
		hasLogin: false,
		// 账号数据
		userInfo: uni.getStorageSync('userInfo') || {},
		// 弹出层状态
		popStatus: false,
		// token
		token: uni.getStorageSync('token') || ''
	},
	mutations: {
		// 登录
		login(state, userInfo) {
			state.userInfo = userInfo
				// uni.setStorageSync('userInfo', userInfo)
		},
		// 改变弹出层状态
		changePop(state, select) {
			state.popStatus = select
		},
		// 更新token
		updateToken(state, token) {
			state.token = token
			// 本地存储token
			this.commit('saveTokenToStorage')
		},
		// 本地存储token
		saveTokenToStorage(state) {
			uni.setStorageSync('token', state.token)
		},
		// 更新用户信息
		updateUserInfo(state, userInfo) {
			state.userInfo = userInfo,
				uni.setStorageSync('userInfo', userInfo)
		},
	},
	// 挂载模块
	modules: {
		m_collect: moduleCollect
	}
})

export default store
